package com.atguigu.eduservice.client;

import com.atguigu.commonutils.R;
import com.atguigu.eduservice.client.impl.VodFileDegradeFeignClient;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

//@FeignClient注解用于指定从哪个服务中调用功能 ，名称与被调用的服务名保持一致。
//@GetMapping注解用于对被调用的微服务进行地址映射。
//@PathVariable注解一定要指定参数名称，否则出错
//@Component注解防止，在其他位置注入CodClient时idea报错

//Feign
@FeignClient(name = "service-vod",fallback = VodFileDegradeFeignClient.class)//加上要调用的服务名和熔断器的实现类
@Component
public interface VodClient {


    //定义调用的方法的路径
    //根据视频id删除视频（视频id：video_source_id）
    @DeleteMapping("/eduvod/video/removeAlyVideo/{id}")
    public R removeAlyVideo(@PathVariable("id") String id);


    //定义调用删除多个视频的方法
    //删除多个阿里云视频的方法。传递多个视频id（List videoIdList）
    @DeleteMapping("/eduvod/video/delete-batch")
    public R deletebatch(@RequestParam("videoIdList") List<String> videoIdList);
}
